Programmable logic controllers (PLCs) typically include a customized piece of hardware that has an instruction set geared for the industrial control industry. This piece of hardware is often referred to as a Hard PLC. A program known as a control program manipulates of memory areas in the PLC that are coupled through other specialized pieces of hardware referred to as I/O modules or systems to machinery (e.g., switches, pumps, motors, machines). The programming language of the control program is usually ladder logic or some other language that typically resembles assembly language. The I/O systems are usually mounted on a rack and can be accessed over a network.
A Soft PLC is a software version of the Hard PLC. Instead of having specialized circuits that execute the control program, a software program running on a general purpose computer (e.g., personal computer (PC)) or special purpose computer executes the control program. The Soft PLC may be coupled to an interface of the computer (e.g., an interface card inserted into a I/O slot of the PC) that in turn may be coupled to an I/O system. In this arrangement, the Soft PLC may interface with the I/O system via the interface card.
Conventional Soft PLCs are typically not very versatile and do not allow easy expansion of their functionality. A traditional approach for incorporating new I/O systems or functionality in a Soft PLC has been to modify and recompile the core functionality or base product of the Soft PLC so that it is capable of supporting the new I/O system and then re-releasing the modified and recompiled Soft PLC base product as a new version.
However, with the availability of more and more third-party I/O systems, the demand for providing versions of Soft PLCs that can incorporate them is increasing. With the inflexibility of the traditional approach, satisfying this demand is becoming more and more problematic because there can be significant delays between the release of a new I/O system and a Soft PLC that incorporate it. The increased demand is also making it more and more difficult to maintain and test the various versions of Soft PLCs created using the traditional approach.